
import { IRoleMenuItem } from '@api/role'

export interface MenuListItem {
    id: string | number;
    name: string;
    icon?: string;
    perms: string;
    type: number;
    sort: number;
    visible: number;
    enabled: number;
    createTime?: string;
}

// 菜单对话框表单数据接口
export interface MenuItemForm {
    id: string,
    parentId: string,
    name: string,
    sort: number,
    type: number, //菜单类型（0：目录；1：菜单；2：按钮）
    redirect: string, //重定向
    path: string, //路由地址
    query: string, //路由参数
    component: string, //组件路径
    parentView: string, //布局方式
    cache: number, //是否缓存（0：缓存；1：不缓存）
    visible: number, //显示状态（0：显示；1：隐藏）
    enabled: number, //菜单状态（0：禁用；1：启用）
    perms: string, //权限标识
    icon: string, //图标
    outerChain: boolean, //是否外联[若是以http/https开头的就是外联]
    isForst: boolean
}


export interface GetMenuListResponse {
    code: number
    message: string
    data: MenuListItem[] // 菜单列表数据
}
//返回诗句
export interface MenuResponse {
    code: number
    message: string
    data: {
        id?: number | string; // 菜单ID（编辑时存在）
        parentId?: string; // 上级菜单ID
        name: string; // 菜单名称
        perms: string; // 权限标识
        sort: number; // 显示排序
        enabled: number; // 全局状态（启用/停用）
        type: number; // 菜单类型（目录/菜单/按钮）
        icon?: string; // 菜单图标
        path?: string; // 路由地址
        outerChain?: boolean; // 是否外联
        redirect?: string; // 重定向地址
        visible?: number; // 是否显示
        query?: string; // 路由参数（仅菜单类型时有）
        cache?: number; // 是否缓存（仅菜单类型时有）
        parentView?: string; // 布局方式（仅菜单类型时有）
        component?: string; // 组件路径（仅菜单类型时有）
        isForst: boolean;//是否是目录
    } // 菜单列表数据
}

//返回诗句
export interface MenuResponseOther {
    code: number
    message: string
    data: {}
}

export interface IPermission {
    treeList: IRoleMenuItem[]
    treeProps: {
        label: string
    }
    linkage: boolean
    openAll: boolean
    selectAll: boolean
}